#ifndef _BSP_KEY_H
#define _BSP_KEY_H

#include "gd32f4xx.h"
#include "systick.h"

#define BSP_KEYM_RCU     RCU_GPIOB      // �����˿�ʱ��
#define BSP_KEYM_PORT    GPIOB          // �����˿�
#define BSP_KEYM_PIN     GPIO_PIN_5     // ��������

/*�����ⲿ�ж�ģʽ*/
#define BSP_KEYM_EXTI_IRQN			EXTI5_9_IRQn          // �ⲿ�ж�3
#define BSP_KEYM_EXTI_PORT_SOURCE 	EXTI_SOURCE_GPIOB   // �ⲿ�ж϶˿���Դ
#define BSP_KEYM_EXTI_PIN_SOURCE  	EXTI_SOURCE_PIN5    // �ⲿ�ж�������Դ
#define BSP_KEYM_EXTI_LINE 			EXTI_5              // �ⲿ�ж���
#define BSP_KEYM_EXTI_IRQHANDLER   	EXTI5_9_IRQHandler    // �ⲿ�жϺ�����

#define BSP_KEYS_RCU     RCU_GPIOE      // �����˿�ʱ��
#define BSP_KEYS_PORT    GPIOE          // �����˿�
#define BSP_KEYS_PIN     GPIO_PIN_5     // ��������

/*�����ⲿ�ж�ģʽ*/
#define BSP_KEYS_EXTI_IRQN			EXTI5_9_IRQn        // �ⲿ�ж�7
#define BSP_KEYS_EXTI_PORT_SOURCE 	EXTI_SOURCE_GPIOE   // �ⲿ�ж϶˿���Դ
#define BSP_KEYS_EXTI_PIN_SOURCE  	EXTI_SOURCE_PIN5    // �ⲿ�ж�������Դ
#define BSP_KEYS_EXTI_LINE 			EXTI_5        		// �ⲿ�ж���
#define BSP_KEYS_EXTI_IRQHANDLER    EXTI5_9_IRQHandler  // �ⲿ�жϺ�����

#define KEYM_Press_Flag 1
#define KEYS_Press_Flag 2

extern uint8_t uckey;

void key_gpio_config(void); 	// key gpio��������
uint8_t KEY_Read(void);
void KEY_Proc(void);

#endif /* BSP_KEY_H */
